// 转账事件

module.exports = app => {
  const mongoose = app.mongoose;
  const Schema = mongoose.Schema;

  const WxtranspaySchema = new Schema({
    wxid: { type: String, required: true }, // 当前登录的微信id
    port: { type: Number, required: true }, // httpapi 监听端口号
    pid: { type: Number, required: true }, // 进程号
    flag: { type: Number, required: true }, // websocket 监听端口号
    fromWxid: { type: String, required: true }, // 对方wxid
    msgSource: { type: Number, default: 0 }, //1|收到转账 2|对方接收转账 3|发出转账 4|自己接收转账 5|对方退还 6|自己退还
    transType: { type: String, default: 1 }, // 1|即时到账 2|延时到账
    money: { type: String, required: true },
    memo: { type: String }, // 转账备注
    transferid: { type: String }, // 转账ID
    transcationid: { type: String }, // 转账ID
    invalidtime: { type: String }, // 10位时间戳
    msgId: { type: String }, // 消息 ID（可选）
    timestamp: { type: Number, required: true }, // 收到这条消息的13位现行时间戳
    date: { type: Date, default: Date.now }, // 转换后的时间（方便查询）
    isconfirm: { type: Boolean, default: true }, // 是否确认
    tags: [{ type: String }], // 自定义标签分组，可多个
  });

  // 索引建议（提高查询效率）
  WxtranspaySchema.index({ "data.fromWxid": 1 });
  WxtranspaySchema.index({ "data.memo": 1 });
  WxtranspaySchema.index({ timestamp: -1 });
  WxtranspaySchema.index({ date: -1 });

  return mongoose.model("Wxtranspay", WxtranspaySchema, "wxtranspay");
};
